#include <stdlib.h>
#include <string.h>
#include <stdio.h>

#include "utils.h"
#include "jugador.h"

struct jugador
{
	char *nombre;
	int dorsal;
	char *pais;
	int goles;
};

jugador_t *jugador_crear(char *nombre,char *pais,int dorsal)
{
	jugador_t *jugador = malloc(sizeof(jugador_t));
	if(!jugador)
		return NULL;

	jugador->nombre = nombre;

	char *p = strdup(pais);
	if(!p)
	{	
		free(jugador->nombre);
		free(jugador);			
		return NULL;
	}
	
	jugador->pais = p;
	jugador->dorsal = dorsal;
	jugador->goles = 0;
	
	return jugador;
}


void jugador_imprimir_dorsal(jugador_t *jugador)
{	
	// Quito el país
	printf("%s,%i: Goles: %i\n",jugador->nombre,jugador->dorsal,jugador->goles);	
}

void jugador_imprimir_goles(jugador_t *jugador)
{	
	// Agrego el pais	
	printf("%s,%i: %s Goles: %i\n",jugador->nombre,jugador->dorsal,jugador->pais,jugador->goles);	
}

void jugador_imprimir(jugador_t *jugador)
{	
	printf("%s: %s Goles: %i\n",jugador->nombre,jugador->pais,jugador->goles);	
}

int jugador_obtener_goles(const jugador_t *jugador)
{	
	return jugador->goles;	
}

int jugador_obtener_dorsal(jugador_t *jugador)
{	
	return jugador->dorsal;		
}

char *jugador_obtener_equipo(jugador_t *jugador)
{	
	return jugador->pais;	
}

char *jugador_obtener_nombre(jugador_t *jugador)
{
	return jugador->nombre;	
}

void jugador_agregar_gol(jugador_t *jugador)
{	
	jugador->goles++;	
}

void jugador_destruir(jugador_t *jugador)
{
	free(jugador->nombre);
	free(jugador->pais);
	free(jugador);
}
